package cn.jia.spring4.aspect;

import cn.jia.spring4.aspect.Inform.DefaultEncoreableImpl;
import cn.jia.spring4.aspect.Inform.Encoreable;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclareParents;

/**
 * Created by jia on 2018/4/2.
 */
@Aspect
public class EncoreableAspect {
    //value属性指定了哪种类型的bean要引入该接口 在本例中，也就是所有实现
   // Performance的类型。（标记符后面的加号表示是Performance的所有子类型，而不是Performance本身
    //defaultImpl属性指定了为引入功能提供实现的类。在这里，我们指定的是DefaultEncoreable提供实现
    //@DeclareParents注解所标注的静态属性指明了要引入了接口。在这里，我们所引入的是Encoreable接口
    @DeclareParents(value = "cn.jia.spring4.target.Performance+",defaultImpl = DefaultEncoreableImpl.class)
    public static Encoreable encoreable;
}
